package com.zhao.utils

/**
 * Description: 报表工具类<br/>
 * Copyright (c) ，2021 ， 赵 <br/>
 * A wet person does not fear the rain. <br/>
 * Date： 2021/1/13 17:11
 *
 * @author 柒柒
 * @version : 1.0
 */

object ReportUtils {

  /**
   * 获得参与竞价数
   * @param iseffective 有效标识(有效指可以正常计费的)(0:无效 1:有效)
   * @param isbilling 是否收费(0:未收费 1:已收费)
   * @param isbid 是否rtb
   * @return
   */
  def calculateRtbCnt(iseffective: Int, isbilling: Int, isbid: Int) = {

    if (iseffective == 1 && isbilling == 1 && isbid == 1){
      List[Double](1)
    } else {
      List[Double](0)
    }
  }

  /**
   * 计算展示数,点击数
   * @param requestmode 数据请求方式(1:请求,2:展示,3:点击)
   * @param iseffective 有效标识(有效指的是可以正常计费的)(0:无效,1:有效)
   * @return
   */
  def calculateTimes(requestmode: Int, iseffective: Int) = {
    if (iseffective == 1) {
      if (requestmode == 2) {
        List[Double](1,0)
      } else if (requestmode == 3) {
        List[Double](0,1)
      } else {
        List[Double](0,0)
      }
    } else {
      List[Double](0,0)
    }
  }

  /**
   * 参与竞价数,竞价成功数,广告消费,广告成本
   * @param iseffective 有效标识(有效指可以正常计费的)(0:无效 1:有效)
   * @param isbilling 是否收费(0:未收费 1:已收费)
   * @param isbid 是否rtb
   * @param isWin 是否竞价成功
   * @param adorderid 广告id
   * @param winPrice rtb竞争成功价格
   * @param adpayment 转换后广告消费
   * @return
   */
  def calculateRtb(iseffective: Int, isbilling: Int, isbid: Int, isWin: Int, adorderid: Int, winPrice: Double, adpayment: Double) = {
    if (iseffective == 1 && isbilling == 1 && isWin == 1) {
      List[Double](if (adorderid != 0) 1 else 0, winPrice/1000, adpayment/1000)
    } else {
      List[Double](0,0,0)
    }
  }


  /**
   * 处理原始请求数,有效请求,广告请求
   * @param requestmode 数据请求方式(1:请求 2:展示 3:点击)
   * @param processnode 流程节点(1:请求量kpi 2:有效请求 3:广告请求)
   * @return
   */
  def calculateReq(requestmode: Int, processnode: Int) = {
    if (requestmode == 1 && processnode == 3) {
      List[Double](1,1,1)
    } else if(requestmode == 1 && processnode >= 2) {
      List[Double](1,1,0)
    }else if(requestmode == 1 && processnode >= 1) {
      List[Double](1,0,0)
    } else{
      List[Double](0,0,0)
    }
  }
}




















